package com.lyncs.ods.modules.user.service;

import com.lyncs.ods.modules.txn.model.TxnCommonInfo;
import com.lyncs.ods.modules.user.model.CompanyUserRelation;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lyncs.ods.modules.user.model.UserInfo;

import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 个人与公司关联关系表 服务类
 * </p>
 *
 * @author alex
 * @since 2022-02-15
 */
public interface CompanyUserRelationService extends IService<CompanyUserRelation> {
    /**
     * 获取登录用户名称
     *
     * @return name
     */
    String getLoginUserName();

    /**
     * 获取指定用户在企业内部的名称
     *
     * @param commonInfos request
     * @param <T>         model
     * @return CID->UID name map
     */
    <T extends TxnCommonInfo> Map<String, String> getCompanyUserName(@NotNull List<T> commonInfos);

    /**
     * 获取指定用户在企业内部的名称
     *
     * @param commonInfo request
     * @param <T>        model
     * @return CID->UID name map
     */
    <T extends TxnCommonInfo> String getCompanyUserName(@NotNull T commonInfo);

    List<String> getCompanyUserEmail(Long companyId);

    List<String> getCompanyUserPhone(Long companyId);

    List<String> getCompanyUserEmail(List<Long> companyIds);

    List<String> getCompanyUserPhone(List<Long> companyIds);

    Map<Long, List<UserInfo>> getCompanyUserInfoMap(List<Long> companyIds);
}
